#include "../include/head.h"
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// 函数声明
void show_login_menu();
void show_user_menu();
void show_admin_menu();
int login_system();

// 系统清理函数
void cleanup_system() {
    // 释放链表资源
    free_list_with_data(user_list, free);
    free_list_with_data(goods_list, free);
    free_list_with_data(order_list, free);
    
    printf("系统资源已释放\n");
}

//=======测试

//=====测试


int main(int argc, char const *argv[])
{
     // 添加这两行代码来设置编码
    system("chcp 65001 > nul");  // 设置 Windows 控制台为 UTF-8
    setlocale(LC_ALL, "zh_CN.UTF-8");  // 设置本地化

    printf("=== 无人超市管理系统 ===\n");

    // 创建必要的目录
    create_directory_if_not_exists("data");
    create_directory_if_not_exists("log");
        
    // 初始化用户系统
    init_user_system();
    init_goods_system();
    init_order_system();

//---------------测试区间-----------------------------------向下
   // 运行链表测试
    // test_linked_list();
//---------------测试区间------------------------------向上
    
    // 主循环
    int current_user_id = -1;
    while (1) {
        show_login_menu();
        current_user_id = login_system();
        
        if (current_user_id == -1) {
            // 退出系统
            printf("感谢使用，再见！\n");
            break;
        } else {
            // 获取用户类型
            User *current_user = find_user_by_id(current_user_id);
            if (current_user != NULL) {
                if (current_user->user_type == 3) {
                    // 管理员界面
                    // show_admin_menu();
                    admin_menu();// 调用管理员菜单函数
                } else {
                    // 普通用户界面
                    // show_user_menu();
                    user_menu(current_user_id);// 调用用户菜单函数并传递用户ID
                }
            }
        }
    }
    
    // 清理系统资源
    cleanup_system();
    
    return 0;
}


